function saber

shg
clf reset
set(gcf,'color','white','name','fern')%设置shg默认属性

location = [100;100];%设置初始点
count=0;%计数变量

X=100;Y=100;%储存drawnow 点 的xdata ydata
x=100;y=100;%保存宝剑函数坐标

h=plot(location(1),location(2),'.');%设置初始drown h的坐标
black=[0 0 0];
set(h,'markersize',1,'color',black);%设置drown 点h 为黑色
axis([-40 100 -40 100]) %x-y轴范围
axis on%开启x-y轴
drawnow %画下h
%画出剑的轮根据随机数判断 该画出什么位置的点，----------------------------------------
%每一个if中对应剑轮廓部分的函数，x，y在此函数上取值改变要drown的h值
while (count<=3000)
    count=count+1;%计数器
    r=rand*2;%取随机值
    %剑身
    if(r<0.2)
        x=5+rand*75;
        y=x-5;
    elseif(r<0.4 && r>=0.2)
        x=0+rand*75;
        y=x+5;
        
    %剑尖
    elseif(r<0.43&&r>=0.4)
        x=75+rand*10;
        y=(1/2)*x+42;
    elseif(r<0.46&&r>=0.43)
        x=80+rand*5;
        y=2*x-85;
        
        
    %剑柄
    elseif(r<0.49&&r>=0.46)
        x=-4+rand*13;
        y=-1.5*x+6.2;
    elseif(r<0.52&&r>=0.49)
        x=-8+rand*12.5;
        y=-1.5*x-4.2;
    elseif(r<0.53&&r>=0.52)
        x=-8+rand*4.26;
        y=x+15.5;
    elseif(r<0.54&&r>=0.53)
        x=4.8+rand*3.8;
        y=x-15.5;
        
      %握柄
     elseif(r<0.58&&r>=0.54)
        x=-24.23+rand*24;
        y=x-4;
     elseif(r<0.62&&r>=0.58)
        x=-27.23+rand*24;
        y=x+4;
        
      %尾柄
    elseif(r<0.64&&r>=0.62)
        x=-28.5+rand*6.13;
        y=-1.5*x-63;
    elseif(r<0.66&&r>=0.64)
        x=-30.5+rand*6.05;
        y=-1.5*x-68;
     elseif(r<0.68&&r>=0.66)
        x=-30.5+rand*2;
        y=x+7.9;
      elseif(r<0.70&&r>=0.68)
        x=-24.5+rand*2;
        y=x-6.9;
        
       %剑柄打点矩形区域第一部分（手握部分）
        elseif(r<0.83&&r>=0.8)
        x=-11.4+rand*2.5;
        y=-1.5*x-25;
         elseif(r<0.86&&r>=0.83)
        x=-10.5+rand*2.5;
        y=-1.5*x-23;
       
        %剑柄第二部分
         elseif(r<0.89&&r>=0.86)
        x=-19.5+rand*3.2;
        y=-1.5*x-45;
         elseif(r<0.92&&r>=0.89)
        x=-19+rand*3.5;
        y=-1.5*x-43;
    end
    X=[X,x];Y=[Y,y];
    set(h,'xdata',X,'ydata',Y);%改变h xdata ydata.
    drawnow
end

%------------------------------------------------------描点-----
count=0;
while (count<=3500)
    count=count+1;%计数器
    r=rand;%取随机值
    
            %剑身细节补充一线-----------------
    if(r<0.1&&r>=0.0)
           x=rand*83+2;
           y=x;
    elseif(r<0.15&&r>=0.1)
           x=rand*73+2;
           y=x+2.8;
    elseif(r<0.2&&r>=0.15)
           x=rand*75+4;
           y=x-2.9;

       %剑面描点          
    elseif(r<0.24&&r>=0.2)
         for a=0:0.1:10
           x=2+rand*75;
           y=5+rand*75;
              if(y-(0.71*x+24.65)<0&&y-(1.5*x-42.5)>0&&y-(x+3)<0&&y-(x-3.1)>0)
                  break;
                
             end
               
         end
    elseif(r<0.3&&r>=0.24)
        for a=0:0.1:10
           x=2+rand*75;
           y=5+rand*75;
              if(y-(0.71*x+24.65)<0&&y-(1.5*x-42.5)>0&&y-(x+3)<0&&y-(x-3.1)>0)
                  break;
                
             end
               
         end
    
    elseif(r<0.4&&r>=0.3)
        for a=0:0.1:10
           x=2+rand*75;
           y=5+rand*75;
              if(y-(0.71*x+24.65)<0&&y-(1.5*x-42.5)>0&&y-(x)<0&&y-(x-3.1)>0)
                  break;
                
             end
               
         end
    
    
   %前护手1全------------------------------------
   elseif(r<0.45&&r>=0.4)
        for a=0:0.1:10
          x=-8+rand*17;
          y=-11+rand*23;
          if(y-(-1.5*x+6.2)<0 && y-(-1.5*x-4)>0 && y-(x-15.5)>0 && y-(x+15.5)<0 )
             break;
          end     
        end
        %前护手2
     elseif(r<0.5&&r>=0.45)
        for a=0:0.1:10
          x=0.1+rand*17;
          y=-11+rand*23;
          if(y-(-1.5*x+6.2)<0 && y-(-1.5*x-4)>0 && y-(x-15.5)>0 && y-(x-4)<0 )
             break;
          end     
        end
%         %前护手3
        elseif(r<0.52&&r>=0.5)
        for a=0:0.1:10
          x=-8+rand*17;
          y=1+rand*23;
          if(y-(-1.5*x+6.2)<0 && y-(-1.5*x-4)>0 && y-(x+4)>0 && y-(x+15.5)<0 )
             break;
          end     
        end
% 
% 
% 
%         %剑柄尾第一部分下面------------------------------------------
       elseif(r<0.54&&r>=0.52)
       for a=0:0.1:100
         x=-26+rand*3;
          y=-31+rand*5;
          if(y-(x+5)<0 && y-(x-6.9)>0 && y-(-1.5*x-63)<0 && y-(-1.5*x-68)>0)
              break;
          end
       end
       
       %剑柄尾第二部分
        elseif(r<0.55&&r>=0.54)
       for a=0:0.1:100
         x=-30+rand*2;
          y=-24.5+rand*3.5;
          if(y-(x+5)>0 && y-(x+8)<0 && y-(-1.5*x-63)<0 && y-(-1.5*x-68)>0)
              break;
          end
       end
       
       
        
       %剑柄打点部分第一部分
         elseif(r<0.61&&r>=0.55)
       for a=0:0.1:100
         x=-24+rand*23;
          y=-27+rand*25.4;
          if(y-(x-4)>0 && y-(x+1)<0 && y-(-1.5*x-64)>0 && y-(-1.5*x-4)<0)
              break;
          end
       end
    end
    X=[X,x];Y=[Y,y];
    set(h,'xdata',X,'ydata',Y);%改变h xdata ydata.
    drawnow
end

